Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Article/programation reactive #117

Open
wants to merge 23 commits into
base: main
Choose a base branch
from
Open

Conversation

khadraoui
Copy link
Collaborator

@khadraoui khadraoui commented Nov 27, 2024

Suivi revue article

Relecteur Statut Validation
@antoinesd
  • A faire
  • En cours
  • Terminée
  • OK
@jmdoudoux-sciam
  • A faire
  • En cours
  • Terminée
  • OK
Ajouter la personne de votre choix
  • A faire
  • En cours
  • Terminée
  • OK

Points à prendre en compte durant la relecture

  • Forme
    • tournures, oublis, passages trop lourds/indigestes, orthographe, grammaire
    • méta-données : auteur, résumé
  • Fond
  • Légal
    • Originalité de l'article, source des images
  • SEO

_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_data/authors.yml Outdated Show resolved Hide resolved
_data/authors.yml Outdated Show resolved Hide resolved
_data/authors.yml Outdated Show resolved Hide resolved
_data/authors.yml Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Show resolved Hide resolved

Spring Reactor propulse le développement d'applications modernes vers de nouveaux sommets en leur conférant réactivité, performance et résilience. En s'alignant sur le Reactive Manifesto, cette technologie ouvre la voie à des systèmes distribués agiles et efficaces. Toutefois, son adoption requiert une solide compréhension des concepts fondamentaux et une évaluation minutieuse des besoins spécifiques de chaque projet.

Face à l'évolution rapide des architectures modernes (cloud, microservices, événements), la programmation réactive s'impose comme une approche incontournable. Il est passionnant d'envisager les prochaines avancées dans ce domaine et d'imaginer les nouveaux outils qui transformeront encore davantage notre façon de concevoir des systèmes réactifs.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ils sont déjà là (en Java : thread virtuels et structured concurrency (en preview)) mais pour remplacer la programmation réactive qui a de très gros défauts.
Sans en avoir un bonne connaissance, c'est la garantie de plus d'ennuis que de gain sur la mise en oeuvre (ce qui est fréquemment le cas).
Pour apporter un peu plus de valeur à cette article, il faudrait ajouter une partie à ce sujet.

@jmdoudoux-sciam
Copy link
Contributor

J'ai fait une première (grosse) passe mais je devrai sûrement en refaire au moins une après les premières prises en compte

_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Show resolved Hide resolved
_posts/2024-11-23-programation-reactive.adoc Outdated Show resolved Hide resolved

== Les principes de la programmation réactive

Les principes de la programmation réactive sont décrites dans le "Manifeste Réactif", qui énonce quatre caractéristiques clés{nbsp}:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Les principes de la programmation réactive sont décrites dans le "Manifeste Réactif", qui énonce quatre caractéristiques clés{nbsp}:
Les principes de la programmation réactive sont décrits dans le "Manifeste Réactif", qui énonce quatre caractéristiques clés{nbsp}:


* Message-Driven (Basé sur les Messages) : les systèmes réactifs communiquent par la transmission de messages asynchrones, facilitant la connexion et le découplage des composants.

== Les bibliotheques de la programmation réactive
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
== Les bibliotheques de la programmation réactive
== Les bibliothèques de la programmation réactive


== Les bibliotheques de la programmation réactive

Les bibliotheques de la programmation réactive sont basés sur deux modèles qui ont été portées dans le JDK 9 avec l'API Flow
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Les bibliotheques de la programmation réactive sont basés sur deux modèles qui ont été portées dans le JDK 9 avec l'API Flow
Les bibliothèques de la programmation réactive sont basées sur deux modèles :

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

une seule des deux correspond à l'API Flow


* Interopérabilité : Fournir une interface standard pour que différentes bibliothèques réactives puissent fonctionner ensemble.

Les principales interfaces de Reactive Streams sont{nbsp}:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Les principales interfaces de Reactive Streams sont{nbsp}:
Les principales interfaces de Reactive Streams, portées dans l'API Flow du JDK 9, sont{nbsp}:


Ces deux types sont les composants de base utilisés pour modéliser des flux de données asynchrones en Java avec Reactor.

En pratique un 'Flux' peut être sérialisé sous plusieur formes{nbsp}:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
En pratique un 'Flux' peut être sérialisé sous plusieur formes{nbsp}:
En pratique un 'Flux' peut être sérialisé sous plusieurs formes{nbsp}:


'WebClient' est une classe fournie par Spring WebFlux pour effectuer des appels HTTP non bloquants (client HTTP réactif).

Nous allons initialiser un `WebClient` en invoquant la méthode `create("http://example.com")` en lui passant en paramètre l'URL de base `http://example.com`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Nous allons initialiser un `WebClient` en invoquant la méthode `create("http://example.com")` en lui passant en paramètre l'URL de base `http://example.com`.
Nous allons initialiser un `WebClient` en invoquant la méthode `create()` en lui passant en paramètre l'URL de base `http://example.com`.


Nous allons initialiser un `WebClient` en invoquant la méthode `create("http://example.com")` en lui passant en paramètre l'URL de base `http://example.com`.

La méthode `get()` initie une requête HTTP de type `GET` et la méthode `uri("/api/data")` spécifie le chemin relatif de l'API.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
La méthode `get()` initie une requête HTTP de type `GET` et la méthode `uri("/api/data")` spécifie le chemin relatif de l'API.
La méthode `get()` initie une requête HTTP de type `GET` et la méthode `uri("/api/data")` spécifie le chemin relatif de l'API


La méthode `get()` initie une requête HTTP de type `GET` et la méthode `uri("/api/data")` spécifie le chemin relatif de l'API.
cible (ajouté à l'URL de base du `WebClient`). La méthode `retrieve()` exécute la requête et récupère la réponse pour être traitée.
Enfin, `bodyToMono(String.class)` extrait le corps de la réponse HTTP et le convertit en un objet de type Mono<String>,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Enfin, `bodyToMono(String.class)` extrait le corps de la réponse HTTP et le convertit en un objet de type Mono<String>,
Enfin, la méthode `bodyToMono(String.class)` extrait le corps de la réponse HTTP et le convertit en un objet de type `Mono<String>`,

Enfin, `bodyToMono(String.class)` extrait le corps de la réponse HTTP et le convertit en un objet de type Mono<String>,
permettant de manipuler la réponse asynchrone dans un pipeline réactif. Si la requête réussit, le contenu de la réponse sera
disponible sous forme de chaîne dans le `Mono`.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Que se passe t-il en cas d'erreur ? comment gérer une erreur ?


== Conclusion:

Spring Reactor propulse le développement d'applications modernes vers de nouveaux sommets en leur conférant réactivité, performance et résilience. En s'alignant
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cette tournure ne me semble pas "d'origine humaine" car beaucoup trop pompeuse. Pourrais tu la reformuler de manière plus sobre ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants